package org.jeecg.modules.front.constant;


/**
 *  状态编码
 */
public enum ResultBaseCodeEnum {


    /**
     * 请求成功，无错误
     */
    SUCCESS("200", "OK"),/**
     /*
     * 请求错误
     */
    ERROR("-1", "ERROR"),
    /**
     * 参数为空
     */
    PARAM_IS_BLANK("400", "PARAM_IS_BLANK"),
    /**
     * 参数类型错误
     */
    PARAM_TYPE_BIND_ERROR("400", "PARAM_TYPE_BIND_ERROR"),
    /**
     * 参数无效
     */
    PARAM_IS_INVALID("400", "PARAM_IS_INVALID"),
    /**
     * 参数缺失
     */
    PARAM_NOT_COMPLETE("400", "PARAM_NOT_COMPLETE"),
    /**
     * 涉及敏感词违规
     */
    VIOLATION_OF_SENSITIVE_WORDS("400","VIOLATION_OF_SENSITIVE_WORDS"),
    /**
     * 由于 OAuth 令牌丢失、TOKEN无效或过期，请求未通过身份验证。
     */
    UNAUTHENTICATED("401", "UNAUTHENTICATED"),
    /**
     * 客户端权限不足。可能的原因包括 OAuth 令牌的覆盖范围不正确、客户端没有权限或者尚未为客户端项目启用 API。
     */
    PERMISSION_DENIED("403", "PERMISSION_DENIED"),
    /**
     * 找不到指定的资源，或者请求由于未公开的原因（例如白名单）而被拒绝。
     */
    NOT_FOUND("404", "NOT_FOUND"),
    /**
     * 并发冲突，例如读取/修改/写入冲突。
     */
    ABORTED("409", "ABORTED"),
    /**
     * 客户端尝试创建的资源已存在
     */
    ALREADY_EXISTS("409", "ALREADY_EXISTS"),
    /**
     * 资源配额不足或达到速率限制。如需了解详情，请查看错误消息
     */
    RESOURCE_EXHAUSTED("429", "RESOURCE_EXHAUSTED"),
    /**
     * 请求被客户端取消。
     */
    CANCELLED("499", "CANCELLED"),
    /**
     * 出现不可恢复的数据丢失或数据损坏。客户端应该向用户报告错误。
     */
    DATA_LOSS("500", "DATA_LOSS"),
    /**
     * 出现未知的服务器错误。通常是服务器错误。
     */
    UNKNOWN("500", "UNKNOWN"),
    /**
     * 出现内部服务器错误。通常是服务器错误。
     */
    INTERNAL("501", "INTERNAL"),
    /**
     * 服务不可用。通常是服务器已关闭。
     */
    UNAVAILABLE("503", "UNAVAILABLE"),
    /**
     * 超出请求时限。仅当调用者设置的时限比方法的默认时限短（即请求的时限不足以让服务器处理请求）并且请求未在时限范围内完成时，才会发生这种情况。
     */
    DEADLINE_EXCEEDED("504", "DEADLINE_EXCEEDED"),

    //***********用户模块（1000）system模块***********//

    /**
     * 账号不存在
     */
    USER_NOT_EXIST("100001", "USER_NOT_EXIST"),
    /**
     * 密码错误
     */
    USER_PASSWORD_ERROR("100002", "USER_PASSWORD_ERROR"),
    /**
     * 账号已被禁用
     */
    USER_ACCOUNT_FORBIDDEN("100003", "USER_ACCOUNT_FORBIDDEN"),
    /**
     * 用户状态失效
     */
    USER_STATUS_INVALID("100004", "USER_STATUS_INVALID"),
    /**
     * 手机验证码失效，错误
     */
    PHONE_VERIFYCODE_INVALID("100005", "PHONE_VERIFYCODE_INVALID"),
    /**
     * 图形验证码失效
     */
    IMAGE_VERIFYCODE_INVALID("100006", "IMAGE_VERIFYCODE_INVALID"),
    /**
     * 用户未登录
     */
    USER_NOT_LOGGED_IN("100007", "USER_NOT_LOGGED_IN"),
    /**
     * ip锁定
     */
    USER_IP_LOCK("100008", "USER_IP_LOCK"),
    /**
     * 手机验证码请求频繁
     */
    PHONE_VERIFYCODE_REQUEST_FREQUENT("100009", "PHONE_VERIFYCODE_REQUEST_FREQUENT"),
    /**
     * 账号已注册
     */
    USER_IS_EXIST("100010", "USER_IS_EXIST"),

    /**
     * 企业状态正在审核，无法登录
     */
    COMPANY_IN_REVIEW("100011", "COMPANY_IN_REVIEW"),

    /**
     * 手机号已经绑定
     */
    PHONE_IS_EXIST("100012", "PHONE_IS_EXIST"),
    /**
     * 手机号号码格式错误
     */
    PHONE_IS_ERROR("100013", "PHONE_IS_ERROR"),

    /**
     * 密码格式错误
     */
    USER_PASSWORD_FORMAT_ERROR("100014", "USER_PASSWORD_FORMAT_ERROR"),
    /**
     * 密码长度错误
     */
    USER_PASSWORD_LENGTH_ERROR("100015", "USER_PASSWORD_FORMAT_ERROR"),

    /**
     * 注册失败
     */
    USER_REGISTER_ERROR("100100", "USER_REGISTER_ERROR"),
    /**
     * 实名认证
     */
    USER_AUTHENTICATION_ERROR("100016", "USER_AUTHENTICATION_ERROR"),
    //***********商品模块（2000）goods模块***********//
    /**
     * 店铺不存在
     */
    SHOP_NOT_EXIST("200001", "SHOP_NOT_EXIST"),
    /**
     * 店铺状态不可用
     */
    SHOP_ACCOUNT_FORBIDDEN("200002", "SHOP_ACCOUNT_FORBIDDEN"),
    /**
     * 商品不存在
     */
    GOODS_NOT_EXIST("200003", "GOODS_NOT_EXIST"),
    /**
     * 商品规格不存在
     */
    GOODS_SKU_NOT_EXIST("200004", "GOODS_SKU_NOT_EXIST"),

    //---------------------商家模块------------------------
    /**
     * 该用户未认证为商家
     */
    USER_NOT_COMPANY("300001","USER_NOT_COMPANY"),
    /**
     * 该用户未认证厂家
     */
    USER_NOT_SUPPLIER("300002","USER_NOT_SUPPLIER"),
    /**
     * 该用户已认证为商家
     */
    COMPANY_BELONG_TO_USER("300002","COMPANY_AUDITING"),

    //***********入学模块（4000）***********//
    /**
     * 该账号手机号为空
     */
    RX_USER_PHONE_IS_NULL("400001","RX_USER_PHONE_IS_NULL"),
    /**
     * 入学模块无权限
     */
    RX_MODULE_NO_PERMISSION("400002", "RX_MODULE_NO_PERMISSION"),
    /**
     * 该账号已存在
     */
    RX_USER_EXIST("400003", "RX_USER_EXIST"),

    /**
     * 获取微信小程序用户session错误
     */
    WX_MINIAPP_GET_USER_SESSION_ERROR("100020","获取小程序用户session错误!"),

    /**
     * 获取到的小程序用户session为空
     */
    WX_MINIAPP_GET_USER_SESSION_NULL_ERROR("100021","获取到的小程序用户session为空"),

    /**
     * 小程序手机号码密文格式错误
     */
    WX_MINIAPP_REQ_PHONE_NUMBER_ERROR("100022","小程序手机号码密文格式错误"),

    /**
     * 小程序加密算法的初始向量为空
     */
    WX_MINIAPP_IV_NULL_ERROR("100023","小程序加密算法的初始向量为空"),
    ;

    private final String code;
    private final String desc;
    private final String errorType;

    private ResultBaseCodeEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
        this.errorType = "1";
    }

    private ResultBaseCodeEnum(String code, String desc, String errorType) {
        this.code = code;
        this.desc = desc;
        this.errorType = errorType;
    }

    public String getCode() {
        return this.code;
    }

    public String getDesc() {
        return this.desc;
    }

    //    @Override
    public String getErrorType() {
        return this.errorType;
    }
}
